package behaviour.observer;

/**
 * 观察者模式
 * 对象间存在一对多关系时，当一个对象被修改时，则会自动通知依赖它的对象
 * <p>
 * 注意事项：
 * 1、JAVA 中已经有了对观察者模式的支持类。
 * 2、避免循环引用。
 * 3、如果顺序执行，某一观察者错误会导致系统卡壳，一般采用异步方式
 *
 * @author yeyangtao created at 2020/7/7 14:30
 */
public class ObserverDemo {
    public static void main(String[] args) {
        Subject subject = new Subject();

        new ObserverOne(subject);
        new ObserverTwo(subject);

        System.out.println("第一次变化");
        subject.setState(1);
        System.out.println("第二次变化");
        subject.setState(2);
    }
}
